import zipfile
import os

ignoreList = [] # 不需要的文件夹名 不是地址

resName = "res.zip"
file_list = list()
isC = False
_file_path_ = './'
#将查找出的文件存放在列表中
def find_file(file_path):
    if os.path.isfile( file_path):
        #判断是否为文件，此为基例，递归终止点
        if isC:
            if file_path.split('.')[-1] == 'c' or file_path.split('.')[-1] == 'cpp' or file_path.split('.')[-1] == 'h':
                file_list.append(file_path)
        else :
            if(file_path.split('.')[-1] == 'java'):
                file_list.append(file_path)
    else:           #如果是目录，执行下边的程序
        for file_ls in os.listdir( file_path):#循环目录中的文件
            if file_ls in ignoreList:
                continue
            find_file(os.path.join( file_path,file_ls))
            #再次判断目录中的文件，实现递归，函数调用函数本身
    return file_list #退出最终的文件列表

find_file(_file_path_)

with zipfile.ZipFile(resName,'w',zipfile.ZIP_DEFLATED) as zf:
    for path in file_list:
        zf.write(path,path.split('/')[-1])
